A. Field of the Invention
The present invention relates generally to routing systems and more particularly, to a serial bus for managing components in a routing system.
B. Description of Related Art
Conventional networks typically include routers that route packets from one or more sources to one or more destinations. A packet is a variable size record that is transmitted through a network. A router is a network device that receives packets containing data and control information at input ports and, based on destination or other information included in the packets, routes the packets to appropriate output ports that lead to either the next router in the packet's journey or to the packet's final destination. Routers determine the proper output port for a particular packet by evaluating header information included in the packet.
A router may include multiple integrated circuits (ICs) and multiple circuit boards operating in conjunction with one another. Serial buses, such as a two-wire serial bus, may be used to exchange control information between various ICs in the router. This type of serial bus is commonly used in a variety of microcontroller-based applications as a control, diagnostic, and power management bus. One such two-wire serial bus standard is available from Philips Semiconductor Corporation and is known as the inter-IC or I2C serial bus.
FIGS. 1A and 1B are diagrams illustrating common connection schemes using a conventional two-wire serial bus. As shown in FIG. 1A, the serial bus 105 connects multiple devices 106 to a microcontroller 101 through a bus controller 102. Microcontroller 101 may communicate with bus controller 102 using, for example, twelve signal & data lines. The bus controller 102 implements the protocol for the two-wire serial bus 105. In operation, each of devices 106 are assigned a bus identification number. Microcontroller 101, when it wishes to communicate with a particular device 106, instructs bus controller 102 to initiate communication with the device having the appropriate identification number. The bus controller 102 then transfers data between the identified device 106 and the microcontroller 101.
As mentioned, each of devices 106 is assigned a unique bus identification number. This can be problematic in systems having a large number of devices, however, as the number of available addressing options may be limited. Additionally, increasing the number of connected devices in a two-wire serial bus having a large number of connected devices 106 makes the bus increasingly vulnerable to a failure due to corruption of the bus lines by a single failing device.
One conventional solution to the above-noted problems in large two-wire serial bus systems is to use multiplexers to isolate multiple devices on the same bus. Such a two-wire serial bus is shown in FIG. 1B, in which a multiplexer 112 connects bus controller 102 to multiple “sub-buses” 113 and 114. Each sub-bus may include multiple devices 106. Devices in different sub-buses 113 and 114 can share the same address. Based on control signals from microcontroller 101, multiplexer 112 selects which of sub-buses 113 and 114 is the active bus. The non-active sub-bus is essentially isolated from the two-wire serial bus and bus controller 102.
Although the multiplexing scheme shown in FIG. 1B solves a number of problems of the non-multiplexed two-wire serial bus, the multiplexing scheme is inconvenient in systems having multiple circuit boards. More specifically, if multiple multiplexers 112 were placed on a number of different circuit boards, bus controller 102 would have to transmit control signals to each of the multiplexers on the separate circuit boards. Additionally, it may be desirable to connect multiple microcontrollers 101 or bus controllers 102 on different circuit boards without routing extensive control logic between the circuit boards.
Thus, there is a need in the art to efficiently implement a two wire serial bus between ICs spanning multiple circuit boards.